<?php 
/**
 * 前台订单页控制器
 */
class OrderController extends CommonController{
	
	public function index(){
		// P(Q('post.check'));
		$sid_data = Q('post.check');
		if ($sid_data) {
			// 结算时没有sid的卸载掉，然后更新一下购物车
			foreach ($_SESSION['cart']['goods'] as $sid => $v) {
				if (!in_array($sid,$sid_data)) {
					unset($_SESSION['cart']['goods'][$sid]);
				}
				// p($_SESSION['cart']);	
			}
			foreach ($_SESSION['cart']['goods'] as $sid => $v) {
				$data = array(
					'sid' => $sid,
					'num' => $_SESSION['cart']['goods'][$sid]['num']
					);
				Cart::update($data);

			}
			// p($_SESSION['cart']);
			$this->assign('cart',$_SESSION['cart']);
		}
		
		
		
		// 默认收货地址 
		$address_data = M('address')->where("isdefault=1")->find();
		// p($address_data);
		// 存session
		session('adid',$address_data['adid']);
		session('consignee',$address_data['consignee']);
		session('mobile',$address_data['mobile']);
		session('address',$address_data['address']);
		$this->assign('address_data',$address_data);
		// 收货地址
		$this->assign('a_data',M('address')->all());
		$this->display();
	}
	/**
	 * 收货地址方法
	 */
	public function address(){
		if (IS_POST) {
			// p(Q('post.'));die;
			$isdefault = Q('post.isdefault','0','intval');
			$adid = Q('post.adid',0,'intval');
        	M('address')->where("adid='{$adid}'")->delete();
			$data = array(
				// 收货人
				'consignee'=> Q('post.consignee'),
				// 手机号
				'mobile'=> Q('post.mobile'),
				// 地址
				'address'=> Q('post.address'),
				// 用户id
				'user_uid'=> $_SESSION['uid'],
				// 是否默认
				'isdefault' => $isdefault
				);
			// p($data);DIE;
			if ($data['isdefault'] == 1 ) {
				M('address')->where("isdefault=1")->update(array('isdefault'=>0));
			} 
			M('address')->add($data);
			$this->success('添加地址成功',U('index'),0.5);
		}
	}
	/**
     * 删除收货地址
     */
    public function del_address(){
        $adid = Q('get.adid',0,'intval');
        $isdefault = Q('get.isdefault',0,'intval');
        if ($isdefault != 1) {
        	M('address')->where("adid='{$adid}'")->delete();
        	$this->success('删除地址成功',U('index'),0.5);
        }
        $this->error('默认地址不能直接删除');
    }
    /**
     * 收货地址是否默认
     */
    public function is_default(){
    	// p(Q('get.'));
    	$adid = Q('get.adid',0,'intval');
        M('address')->where("isdefault=1")->update(array("isdefault"=>0));
        M('address')->where("adid='{$adid}'")->update(array("isdefault"=>1));
        $this->success('设置默认成功',U('index'),0.1);
    }
    /**
     * 修改地址
     */
    public function edit_address(){
    	if (!IS_AJAX) return false;
    	// p(Q('post.'));
    	$adid = Q('post.adid',0,'intval');
    	$data = M('address')->where("adid='{$adid}'")->find();
    	$this->ajax($data);
    }

	/**
	 * 生成订单
	 */
	public function add_order(){
		if (!isset($_SESSION['uid'])) {
			$this->error('请登录！');
		}
		// p($_SESSION);die;
		$data = array(
			// 订单号，当前时间擢——随机数
			'number' => time() . "_" . rand(0,10000),
			// 收货人
			'consignee'=> $_SESSION['consignee'],
			// 收货地址
			'address'=> $_SESSION['address'],
			// 手机号
			'mobile'=> $_SESSION['mobile'],
			// 总价
			'total'=> $_SESSION['cart']['total'],
			// 生成时间
			'time'=>time(),
			// 所属用户
			'user_uid'=>$_SESSION['uid']
			);
		// p($data);
		// p($_SESSION['cart']);die;
		$oid = M('orders')->add($data);
		if ($oid) {
			M('address')->where("adid='{$_SESSION['adid']}'")->update(array('order_oid'=>$oid));
			$list = array(
				'quantity' => $_SESSION['cart']['total_rows'],
				'subtotal' => $_SESSION['cart']['total'],
				'order_oid' => $oid
				);
			M('order_list')->add($list);
		} 
		// 循环减库存
		foreach ($_SESSION['cart']['goods'] as $k => $v) {
			$inventory = M('goods_list')->where("glid='{$v['glid']}'")->getField('inventory');
			$data = array(
				'inventory' => $inventory-$v['num']
				);
			M('goods_list')->where("glid='{$v['glid']}'")->update($data);
		}
		Cart::delAll();
		$this->success('提交订单成功，3秒后去首页',__ROOT__,3);


	}

}
















 ?>